高并发下文章点击量设计

您所在的位置:网站首页 页面点击量 记录 高并发下文章点击量设计

高并发下文章点击量设计

2024-07-12 11:20| 来源: 网络整理| 查看: 265

游客或者会员在点击文章的时候,需要对文章的点击量做一个计数统计。考虑到点击量计数的准确性,有以下几个需求:

用户可以不需要登录每当用户点击文章的详情页面,这个文章的点击量+1用户能实时看到文章点击量,也就是用户点击后能及时看到+1点击量最终保存在数据库中,最终一致性作者在后台编辑文章然后保存时,如果这期间有点击量的增加,保存文章时不能覆盖掉这段时间的增量需要对用户去重处理,也就是一个人在一定时间内多次点击只计数一次,防止用户不断刷新或者使用爬虫不断请求某个API要过滤掉百度和谷歌的爬虫请求(根据User-Agent头判断,可以先不做)

一、设计思路

1、因为用户的数量可能很多,所以要求做到高并发,直接在数据库做加1操作不行,考虑利用缓存计数;

2、要求最终数据库数据一致性,考虑利用定时任务从缓存中获取;

3、用户可以匿名,所以缓存的key设计可以用文章标题的hash+用户ip;

4、防止爬虫或者快速刷接口,需要在后端对同一个用户的同一篇文章在缓存中打标;

5、保存文章更新的时候,不能更新点击量,点击量通过定时任务从缓存中获取,防止数据被覆盖;

5、考虑到缓存的使用效率,需要对缓存的key做过期设置,或者主动清除旧的key。

二、设计实现

1、文章详情获取请求路径:Get  /article/{title}

      在请求详情的时候,同时请求点击量+1的接口 Put   /article/{title} , 然后后端同步返回200

2、缓存的key设计,文章点击量key-> article:title:num  缓存的时间可以设置为1周;对用户文章点击量去重,设计key: article:title:ip, 缓存的有效时间1分钟,也就是1分种内同一个ip,同一片文章多次点击只计数一次。

3、数据库表设计

idtitleclick_numcreate_timeupdate_time     

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3